package com.deyuanyun.pic.settings.service.prvlg;

import com.deyuanyun.pic.settings.domain.base.Threshold;
import com.deyuanyun.pic.settings.domain.prvlg.Menu;
import com.github.pagehelper.Page;

import java.util.List;
import java.util.Map;

/**
 * Created by linwei on 2015/8/4.
 */
public interface MenuService {

    /**
     * 根据菜单名称 查询 对应菜
     *   如果参数 menuName == null，查询出所有数据
     *
     * @param menuName 功能菜单名称
     * @return
     */
    Page<Menu> queryMenuListByName(final String menuName);

    /**
     * 获得用户权限
     *
     * @param userId 用户编号
     * @return
     */
    List<Menu> queryMenuList(final String userId);

    /**
     * 查询所有的子节点菜单 根据当前父节点 和用户编号
     *
     * @param userId 用户编号
     * @param parentId 菜单父节点
     * @return
     * @throws Exception
     */
    List<Menu> queryAllSubLevelMenu(String userId, String parentId);

    /**
     * 查询同级的菜单 根据当前父节点 和用户编号
     *
     * @param userId 用户编号
     * @param parentId 菜单父节点
     * @return
     * @throws Exception
     */
    List<Menu> querySameLevelMenu(String userId, String parentId);

    List<Menu> queryCurrUserMenu();

    List<Threshold> queryThresholdGroupList(Map map);

    /**
     * 得到跟节点菜单 根据用户编号
     *
     * @param userId 用户编号
     * @return
     * @throws Exception
     */
    List<Menu> getRootMenu(String userId);
}
